<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
<script>
// 数据类型转换：

// 强制转换（显式转换）：调用某个方法来转换数据类型
// val.toString() 将val转换为字符串值（不能转null和undefined）
// String(val)  将val转换为字符串值（可以转null和undefined）
// Number(val) 将val转为数字值
// parseInt(val) 将数字/字符串转为数字值
// parseFloat(val) 将数字/字符串转为数字值
// Boolean(val) 将val转为布尔值

// 转布尔值的规律：0 NaN '' null undefined false转为false，其他都是true

// 自动转换（隐式转换）：使用某个运算符时自动发生类型转换
// JS引擎在自动转换数据类型时，转换为适合运算符的数据类型
// 字符串+其他类型，其他类型转为字符串
// 数字+布尔值，布尔值转为数字
// 数字(-*/%)字符串，字符串转为数字
// 逻辑运算符，将数据转为布尔值
// 关系运算符：
    // 数字和字符串比较时，字符串转为数字
    // 字符串和字符串比较时，比较字符的ASCII码值 '0'->48  'A'->65  'a'->97
    // null和undefined比较时，都转为布尔值
        //console.log( null == undefined );// true 都转成布尔值
        //console.log( null === undefined );// false 没有类型转换
    // 数字和布尔值比较时，布尔值转为数字
    // 布尔值和字符串比较时，都转为数字

// 选择结构：根据条件选择执行
// if(){}
// if(){}else{} 只有一条语句时，可以省略大括号（不推荐）
// if(){}else if(){}else if(){}
// if(){}else if(){}else if(){}else{}
// if(表达式){} 表达式：可以逻辑判断或关系表达式或任意值

// switch(value){
//     case x:
//         代码块1;
//         break;// 不继续往下匹配
//     case y:
//         代码块2;
//         break;// 不继续往下匹配
//     case z:
//         代码块3;
//         break;// 不继续往下匹配
//     default:
//         代码块4;
// }
// 匹配某个case之后，如果不执行break，程序会穿透往下继续执行

</script>
</body>
</html>